package com.d.client.dto;

import java.util.List;

public class YidaProcessInstanceInfosResultDTO {


    /**
     * createTimeGMT : 2021-05-01
     * processInstanceId : f30233fb-72e1-4xxx
     * actionExecutor : [{"name":{"nameInEnglish":"ZhangSan","type":"i18n","nameInChinese":"张三"},"deptName":"开发部","userId":"manager123","email":"abc@alimail.com"}]
     * approvedResult : agree
     * formUuid : FORM-EF6Y4xxx
     * modifiedTimeGMT : 2021-05-01
     * processCode : TPROC--X1Gxxx
     * originator : {"name":{"nameInEnglish":"ZhangSan","type":"i18n","nameInChinese":"张三"},"deptName":"开发部","userId":"manager123","email":"abc@alimail.com"}
     * title : 李四发起的请购单
     * instanceStatus : RUNNING
     */

    private String createTimeGMT;
    private String processInstanceId;
    private String approvedResult;
    private String formUuid;
    private String modifiedTimeGMT;
    private String processCode;
    private OriginatorBean originator; //发起人
    private String title;
    private String instanceStatus;
    private List<ActionExecutorBean> actionExecutor;

    @Override
    public String toString() {
        String str =
                "YidaProcessInstanceInfosResultDTO{" +
                        "createTimeGMT='" + createTimeGMT + '\'' +
                        ", processInstanceId='" + processInstanceId + '\'' +
                        ", approvedResult='" + approvedResult + '\'' +
                        ", formUuid='" + formUuid + '\'' +
                        ", modifiedTimeGMT='" + modifiedTimeGMT + '\'' +
                        ", processCode='" + processCode + '\'' +
                        ", originator=" + originator.toString() +
                        ", title='" + title + '\'' +
                        ", instanceStatus='" + instanceStatus + '\'';
        if (actionExecutor != null && actionExecutor.size() > 0) {
            str += "[";
            for (ActionExecutorBean bean : actionExecutor) {
                str += bean.toString();
            }
            str += "]";
        } else {
            str += ", actionExecutor=[]";
        }

        str += '}';

        return str;
    }

    public String getCreateTimeGMT() {
        return createTimeGMT;
    }

    public void setCreateTimeGMT(String createTimeGMT) {
        this.createTimeGMT = createTimeGMT;
    }

    public String getProcessInstanceId() {
        return processInstanceId;
    }

    public void setProcessInstanceId(String processInstanceId) {
        this.processInstanceId = processInstanceId;
    }

    public String getApprovedResult() {
        return approvedResult;
    }

    public void setApprovedResult(String approvedResult) {
        this.approvedResult = approvedResult;
    }

    public String getFormUuid() {
        return formUuid;
    }

    public void setFormUuid(String formUuid) {
        this.formUuid = formUuid;
    }

    public String getModifiedTimeGMT() {
        return modifiedTimeGMT;
    }

    public void setModifiedTimeGMT(String modifiedTimeGMT) {
        this.modifiedTimeGMT = modifiedTimeGMT;
    }

    public String getProcessCode() {
        return processCode;
    }

    public void setProcessCode(String processCode) {
        this.processCode = processCode;
    }

    public OriginatorBean getOriginator() {
        return originator;
    }

    public void setOriginator(OriginatorBean originator) {
        this.originator = originator;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getInstanceStatus() {
        return instanceStatus;
    }

    public void setInstanceStatus(String instanceStatus) {
        this.instanceStatus = instanceStatus;
    }

    public List<ActionExecutorBean> getActionExecutor() {
        return actionExecutor;
    }

    public void setActionExecutor(List<ActionExecutorBean> actionExecutor) {
        this.actionExecutor = actionExecutor;
    }

    public static class OriginatorBean {
        /**
         * name : {"nameInEnglish":"ZhangSan","type":"i18n","nameInChinese":"张三"}
         * deptName : 开发部
         * userId : manager123
         * email : abc@alimail.com
         */

        private NameBean name;
        private String deptName;
        private String userId;
        private String email;

        @Override
        public String toString() {
            return "OriginatorBean{" +
                    "name=" + name +
                    ", deptName='" + deptName + '\'' +
                    ", userId='" + userId + '\'' +
                    ", email='" + email + '\'' +
                    '}';
        }

        public NameBean getName() {
            return name;
        }

        public void setName(NameBean name) {
            this.name = name;
        }

        public String getDeptName() {
            return deptName;
        }

        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }

        public String getUserId() {
            return userId;
        }

        public void setUserId(String userId) {
            this.userId = userId;
        }

        public String getEmail() {
            return email;
        }

        public void setEmail(String email) {
            this.email = email;
        }

        public static class NameBean {
            /**
             * nameInEnglish : ZhangSan
             * type : i18n
             * nameInChinese : 张三
             */

            private String nameInEnglish;
            private String type;
            private String nameInChinese;

            public String getNameInEnglish() {
                return nameInEnglish;
            }

            public void setNameInEnglish(String nameInEnglish) {
                this.nameInEnglish = nameInEnglish;
            }

            public String getType() {
                return type;
            }

            public void setType(String type) {
                this.type = type;
            }

            public String getNameInChinese() {
                return nameInChinese;
            }

            public void setNameInChinese(String nameInChinese) {
                this.nameInChinese = nameInChinese;
            }
        }
    }

    public static class ActionExecutorBean {
        /**
         * name : {"nameInEnglish":"ZhangSan","type":"i18n","nameInChinese":"张三"}
         * deptName : 开发部
         * userId : manager123
         * email : abc@alimail.com
         */

        private NameBeanX name;
        private String deptName;
        private String userId;
        private String email;

        @Override
        public String toString() {
            return "ActionExecutorBean{" +
                    "name=" + name +
                    ", deptName='" + deptName + '\'' +
                    ", userId='" + userId + '\'' +
                    ", email='" + email + '\'' +
                    '}';
        }

        public NameBeanX getName() {
            return name;
        }

        public void setName(NameBeanX name) {
            this.name = name;
        }

        public String getDeptName() {
            return deptName;
        }

        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }

        public String getUserId() {
            return userId;
        }

        public void setUserId(String userId) {
            this.userId = userId;
        }

        public String getEmail() {
            return email;
        }

        public void setEmail(String email) {
            this.email = email;
        }

        public static class NameBeanX {
            /**
             * nameInEnglish : ZhangSan
             * type : i18n
             * nameInChinese : 张三
             */

            private String nameInEnglish;
            private String type;
            private String nameInChinese;

            public String getNameInEnglish() {
                return nameInEnglish;
            }

            public void setNameInEnglish(String nameInEnglish) {
                this.nameInEnglish = nameInEnglish;
            }

            public String getType() {
                return type;
            }

            public void setType(String type) {
                this.type = type;
            }

            public String getNameInChinese() {
                return nameInChinese;
            }

            public void setNameInChinese(String nameInChinese) {
                this.nameInChinese = nameInChinese;
            }
        }
    }
}
